Skip to content

feat(aws-lambda): Detect Lambda triggers - #8222

Draft
sentry-junior[bot] wants to merge 2 commits into
junior/aws-lambda-invoke-trace-continuationfrom
junior/aws-lambda-trigger
Draft

sentry-junior[bot] wants to merge 2 commits into
junior/aws-lambda-invoke-trace-continuationfrom
junior/aws-lambda-trigger

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Description

Sets faas.trigger on the Lambda span based on the shape of the delivered event:

  • http: API Gateway REST/HTTP, function URLs, ALB, CloudFront, AppSync
  • pubsub: SQS, SNS, Kinesis, Kafka, MQ, SES, EventBridge
  • datasource: S3, DynamoDB Streams, DocumentDB
  • timer: EventBridge schedules
  • other: anything else

The trigger is read from the event envelope, never from its payload.

messaging.batch.message_count is removed from the Lambda span, the same way as in #8219. The count stays on messaging spans only: boto3 receive and batch-send spans, and queue.process for SQS/SNS triggers (#8223).

This is Pablo's code from pablo/aws-lambda-trigger, without his batch counting for the invocation span. It's the second of three stacked drafts (#8221 → this → queue.process).

Issues

via @dingsdax.

--

View Session [Sentry]

Classify the delivered event into faas.trigger: http (API Gateway,
function URLs, ALB, CloudFront, AppSync), pubsub (SQS, SNS, Kinesis,
Kafka, MQ, SES, EventBridge), datasource (S3, DynamoDB Streams,
DocumentDB), timer (EventBridge schedules) or other. The trigger is
read from the event envelope, never from its payload.

messaging.batch.message_count is now only set for messaging
deliveries, with the number of delivered messages.

Co-Authored-By: Johannes Daxböck <114897+dingsdax@users.noreply.github.com>
@linear-code

linear-code Bot commented Nov 9, 2026

Copy link
Copy Markdown

PY-3018

@github-actions

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Coverage Results 📊

✅ 57723 passed | ⏭️ 2979 skipped | Total: 60702 | Pass Rate: 95.09% | Execution Time: 155m 26s

📊 Comparison with Base Branch

Metric Change
Total Tests 📉 -83975
Passed Tests 📉 -79498
Failed Tests —
Skipped Tests 📉 -4477

All tests are passing successfully.

❌ Patch coverage is 26.47% (9 of 34 changed executable lines covered; target 80%).
Project statement coverage is 90.06% (down 0.24 percentage points from base (7ea5204) to head (f864c51)).

Changed files with executable lines (3)
File Patch coverage Changed executable lines
sentry_sdk/integrations/aws_lambda/_trigger.py 20.69% 6/29 covered; missed: 40, 45, 54, 56, 57, 58, 60, 61, 65, 66, 69, 71, 72, 74, 75, 77, 78, 79, 81, 82, 86, 87, 89
sentry_sdk/integrations/aws_lambda/_handler.py 33.33% 1/3 covered; missed: 166, 167
sentry_sdk/consts.py 100.00% 2/2 covered
Coverage diff
@@            Coverage Diff             @@
##        master     #8222       +/-##
==========================================
- Coverage    90.30%    90.06%    -0.24%
==========================================
  Files          203       199        -4
  Tracked lines     26933     21424     -5509
  Branches     10058      7422     -2636
==========================================
- Hits         24321     19294     -5027
+ Misses        2612      2130      -482
+ Partials      1518      1240      -278

Generated by Coverage Action

…a span

Keep the count on messaging spans only (boto3 receive and batch-send
spans, and queue.process for SQS/SNS triggers), as in the OTel
messaging conventions and the JS SDK. This drops the batch counting for
Kafka, MQ and RabbitMQ deliveries, and matches #8219 so both PRs change
these lines the same way.

Co-Authored-By: johdax <114897+dingsdax@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant